home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MEDICAL / 2608A.ZIP / GP.ZIP / CHKMIN.SRC < prev    next >
Text File  |  1990-11-03  |  25KB  |  1,048 lines

  1. ;\|
  2. ;CHKMIN.SRC     Translated from CHKMIN.EDT by Roger Mathew's EDT2SRC Ver 4.11
  3. ;CHECK_UP 11:46:27 PM   2/ 5/90   |
  4. DO_DEFINES:
  5. define(CTR2|N|1||)
  6. define(ISITCLIN|A|1||)
  7. define(silly|a|1||)
  8. define(fld_lctr|N|2||)
  9. define(FLAG|A|1||)
  10. define(YES.NO|A|1||)
  11. define(CTR3|N|1||)
  12. define(MEM_NAME_CHK|A|27||)
  13. define(PROC4|A|1||)
  14. define(REF_CTR|N|2||)
  15. define(MEM_DOC2|N|1||)
  16. define(CON_CTR|N|2||)
  17. define(EXTRAS|N|3||)
  18. define(CON_NUM|N|3||)
  19. define(CLIN_NUM|N|3||)
  20. define(EMERG_NUM|N|3||)
  21. define(ISIT_EMER|A|1||)
  22. define(MEM_DOC|A|1||)
  23. define(NY|A|1||)
  24. define(AGE|N|2||)
  25. define(BP_DROP|N|2||)
  26. define(MEM_CTR|N|1||)
  27. define(FBS_ADD|N|5|2|)
  28. define(MEM_BP_AGE|N|3||)
  29. define(AOD|A|1||15)
  30. define(TD|S|8||)
  31. define(MN|A|30||15)
  32. define(DO|A|8||15)
  33. define(QU|A|10||15)
  34. define(DS|A|30||15)
  35. define(QTY|N|3||15)
  36. define(ISN|N|3||15)
  37. define(CTR|N|2||)
  38. define(CTR2|N|2||)
  39. define(LNE.LNGTH|N|2||)
  40. define(OK|A|1||)
  41. define(LNE.LN2|N|2||)
  42. define(NUM.MSG|N|2||)
  43. define(MESSAGE|A|78||15)
  44. define(ENT.MASK|A|10||)
  45. define(LLC|N|2||)
  46. define(WD|N|2||)
  47. define(HT|N|2||)
  48. define(MCNTR|N|5||)
  49. define(MCNTR2|N|5||)
  50. define(MCNTR3|N|5||)
  51. define(MCNTR4|N|5||)
  52. define(MEM_DIAB|A|1||)
  53. define(MEM_NEW|A|1||)
  54. define(MEM_BP|A|1||)
  55. define(MEM_THY|A|1||)
  56. define(MEM_OLD|A|1||)
  57. define(MEM_RECD|S|8||)
  58. define(MEM_RECT|S|8||)
  59. define(MEM_RECB|S|8||)
  60. OPEN_FILES:
  61. open(PATIENT||0|EXIT)
  62. open(DIABETIC||1|EXIT)
  63. open(RP||0|)
  64. open(RECALLS||0|)
  65. open(REFER||0|EXIT)
  66. open(PROCEDE||1|EXIT)
  67. open(MEMORY||0|EXIT)
  68. open(GPSETUP||0|EXIT)
  69. STARTCHK:
  70. trap(S|G|SAVE_RECS)
  71. trap(D|I)
  72. trap(C|G|CLR_RECS)
  73. trap(Q|G|EXIT)
  74. trap(J|I)
  75. MOUNT_SCRS:
  76. mount(SCREEN2|S||)
  77. date(TD|G)
  78. START_UP:
  79. trap(J|I)
  80. MEM_BP = ("Y")
  81. PAT.NAME:
  82. clrlne(1|22)
  83. enter(PATIENT.NAME||||||||)
  84. find(G|PATIENT.NAME|PAT.NAME|)
  85. DIAB_REF = (RECORD.NUMBER)
  86. find(M|DIAB_REF|NO_DIABX|)
  87. NO_DIAB:
  88. goto STARTALL
  89. NO_DIAB2:
  90. gosub GET_AGE
  91. trap(%|I)
  92. trap(U|I)
  93. saves(10)
  94. window(20|12|2|35)
  95. ISITCLIN = ("")
  96. pmsg("Is this a clinic or update?"|1|1|N|N|S|)
  97. enter(ISITCLIN|"YN"|||Y|Y|N|30|1|N)
  98. if ISITCLIN = ("Y") then CHECK_DATE = (TD)
  99. trap(%|D)
  100. trap(U|D)
  101. redsp(10)
  102. MEM_CTR = (9)
  103. enter(CHECK_DATE||||N|Y|N|||N)
  104. enter(CHECK_OP||||Y|Y|N|||N)
  105. if CHECK_OP = ("") reent
  106. enter(CHK_DOC|"1234"|||N|Y|N|||N)
  107. enter(DOC_BP1|"1234567890"|||N|Y|N|||N)
  108. enter(DOC_BP2|"1234567890"|||N|Y|N|||N)
  109. if DOC_BP1 > (0) then MEM_BP = ("Y")
  110. NO_DIAB3:
  111. FLAG = ("X")
  112. trap(J|G|RUN_MEMO)
  113. enter(SMOK||SMOK_HLP||N|Y|N|||N)
  114. if SMOK > (0) gosub SMOK_MSG
  115. enter(EXERCISE||EX_HLP||N|Y|N|||N)
  116. enter(ALCOHOL||ALC_HLP||N|Y|N|||N)
  117. enter(ANGINA||ANG_HLP||N|Y|N|||N)
  118. enter(DIET|"GB "|DIET_HLP||Y|Y|N|||N)
  119. enter(WT1||||N|Y|N|||N)
  120. enter(WT2||||N|Y|N|||N)
  121. IDEAL_WT = (WT2-81*0.85)
  122. if WT1 > (IDEAL_WT) gosub WEIGHT
  123. enter(PROT|" T+"|||N|N|N|||N)
  124. if PROT => ("+") gosub REF_PROT
  125. enter(SUG||SUG_HLP||N|N|N|||N)
  126. if SUG > (0.25) gosub REF_SUG
  127. enter(BP_CHECK_NUM|" 123"|||N|Y|N|||N)
  128. enter(BP1||||N|Y|N|||N)
  129. enter(BP2||||N|Y|N|||N)
  130. enter(BP1S||BPST_HLP||N|Y|N|||N)
  131. gosub BP_CHECK
  132. enter(PULSE||||N|Y|N|||N)
  133. if PULSE > (120) gosub FAST
  134. if PULSE < (56) gosub SLOW
  135. enter(REG|" YN"|REG_HLP||Y|Y|N|||N)
  136. if REG = ("N") then enter(APEX||||N|Y|N|||N)
  137. if APEX <> (0) then if APEX > (120) gosub FAST
  138. if APEX <> (0) then if APEX < (56) gosub SLOW
  139. enter(OEDEMA|" 123"|OED_HLP||N|Y|N|||N)
  140. enter(FEV||||N|Y|N|||N)
  141. enter(CHOL||||N|Y|N|||N)
  142. enter(COMMENT1||||Y|Y|N|||N)
  143. enter(COMMENT2||||Y|Y|N|||N)
  144. enter(REF_CHECK|"NY"|||Y|Y|N|||N)
  145. NEXT_CHECK = (CHECK_DATE+186)
  146. enter(NEXT_CHECK||||N|Y|N|||N)
  147. YES.NO = ("")
  148. enter(YES.NO|"YN"|||Y|Y|N|||N)
  149. if YES.NO = ("Y") gosub PRINT
  150. SAVE_RECS:
  151. if RECORD.NUMBER = (0) goto PAT.NAME
  152. SAVE_DONE:
  153. DIAB_REF = (RECORD.NUMBER)
  154. CHECK_TYPE = (6)
  155. save(DIABETIC|N|Y)
  156. find(M|RECORD.NUMBER|EXIT|)
  157. save(PATIENT|N|Y)
  158. if FLAG = ("Y") then run("recmenu")
  159. FLAG = ("")
  160. STARTX:
  161. MEM_DIAB = ("")
  162. MEM_NEW = ("")
  163. MEM_BP = ("")
  164. MEM_THY = ("")
  165. MEM_CTR = (0)
  166. MEM_RECD = (0)
  167. MEM_NAME_CHK = ("")
  168. MEM_RECT = (0)
  169. MEM_CTR = (0)
  170. MEM_OLD = ("")
  171. MEM_RECB = (0)
  172. AGE = (0)
  173. BP_DROP = (0)
  174. FBS_ADD = (0)
  175. MEM_BP_AGE = (0)
  176. for(CTR|12|23|1)
  177. {
  178. clrlne(1|CTR)
  179. }
  180. pmsg("F1 - Help  F2 - Memo  [Ctrl-Y]- Print"|1|24|N|N|S|)
  181. clr(PATIENT|B)
  182. goto START_UP
  183. DEL_RECS:
  184. del(DIABETIC|Y|)
  185. clr(PATIENT|B)
  186. goto STARTX
  187. CLR_RECS:
  188. clr(PATIENT|B)
  189. clr(DIABETIC|B)
  190. goto STARTX
  191. EXIT:
  192. if FLAG = ("X") do
  193. {
  194. FLAG = ("Y")
  195. goto SAVE_DONE
  196. }
  197. run("recmenu")
  198. PRT.MSG:
  199. LNE.LNGTH = (0)
  200. for(MCNTR|1|NUM.MSG|1)
  201. {
  202. LNE.LN2 =siz(A|MESSAGE[MCNTR])
  203. if LNE.LN2 > (LNE.LNGTH) then LNE.LNGTH = (LNE.LN2)
  204. }
  205. NUM.MSG = (NUM.MSG + 1)
  206. if LNE.LNGTH < (26) then LNE.LNGTH = (26)
  207. LNE.LNGTH = (LNE.LNGTH + 4)
  208. LLC = (40 - (LNE.LNGTH / 2))
  209. HT = (NUM.MSG + 3)
  210. WD = (LNE.LNGTH + 1)
  211. saves(1)
  212. window(LLC|24|HT|WD)
  213. NUM.MSG = (NUM.MSG - 1)
  214. pmsg(""||||||)
  215. for(MCNTR|1|NUM.MSG|1)
  216. {
  217. pmsg(MESSAGE[MCNTR]|3||N|N|S|)
  218. }
  219. pmsg("Press any key to continue"|3||Y|N|S|)
  220. redsp(1)
  221. ret
  222. NO_DIABX:
  223. clr(DIABETIC|B)
  224. MESSAGE[1] = ("NO CHECK UP RECORD FOR THIS PATIENT")
  225. NUM.MSG = (1)
  226. gosub PRT.MSG
  227. goto NO_DIAB
  228. SEEALL:
  229. STARTALL1:
  230. STARTALL:
  231. if RECORD.NUMBER = (0) goto ENDIT
  232. COD.REF = (RECORD.NUMBER)
  233. find(M|COD.REF|NEXTALL2|)
  234. MEM_RECB = (COD.D[9])
  235. NEXTALL2:
  236. RP.REF = (RECORD.NUMBER)
  237. find(M|RP.REF|ENDITX|)
  238. CTR = (1)
  239. TESTALL:
  240. if CTR = (12) goto ENDIT
  241. AOD[CTR] = (AUTO.ON.DEMAND)
  242. MN[CTR] = (MEDICATION)
  243. DO[CTR] = (DOSE)
  244. QU[CTR] = (QUANTITY)
  245. DS[CTR] = (DIRECTIONS)
  246. QTY[CTR] = (RP.DISP.QTY)
  247. ISN[CTR] = (ISSUE.NO)
  248. trim(MN[CTR]|T)
  249. trim(QU[CTR]|T)
  250. just(QU[CTR]|L)
  251. trim(DO[CTR]|T)
  252. just(DO[CTR]|L)
  253. trim(DS[CTR]|T)
  254. just(DS[CTR]|L)
  255. CTR2 = (CTR+11)
  256. pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|1|CTR2|N|N|S|)
  257. silly = ("")
  258. find(N|RP|ENDIT|)
  259. if RP.REF <> (RECORD.NUMBER) goto ENDIT
  260. CTR = (CTR+1)
  261. goto TESTALL
  262. CLEARXALL:
  263. clr(RP|B)
  264. clr(RECALLS|B)
  265. clrmem(AOD|15)
  266. clrmem(MN|15)
  267. clrmem(DO|15)
  268. clrmem(QU|15)
  269. clrmem(DS|15)
  270. clrmem(QTY|15)
  271. clrmem(ISN|15)
  272. ret
  273. ENDIT:
  274. find(M|RECORD.NUMBER|PAT.NAME|)
  275. DIAB_REF = (RECORD.NUMBER)
  276. find(M|DIAB_REF|NO_DIAB2|)
  277. goto NO_DIAB2
  278. ENDITX:
  279. MESSAGE[1] = ("NO DRUGS ON REPEAT")
  280. NUM.MSG = (1)
  281. gosub PRT.MSG
  282. goto ENDIT
  283. GET_AGE:
  284. AGE = (TD-DATE.OF.BIRTH/365)
  285. ret
  286. BP_CHECK:
  287. if MEM_BP = ("Y") do
  288. {
  289. if BP_CHECK_NUM => (2) do
  290. {
  291. if BP1 > (DOC_BP1) gosub REFER_BP
  292. if BP2 > (DOC_BP2) gosub REFER_BP
  293. BP_DROP = (BP1-BP1S)
  294. if BP_DROP > (20) gosub REFER_BP
  295. }
  296. ret
  297. }
  298. else
  299. {
  300. if BP_CHECK_NUM = (2) do
  301. {
  302. if BP1 > (AGE+110) gosub REFER_BP
  303. }
  304. if BP2 > (105) gosub REFER_BP
  305. BP_DROP = (BP1-BP1S)
  306. if BP_DROP > (20) gosub REFER_BP
  307. }
  308. ret
  309. REF_FBS:
  310. if FBS_CHECK_NUM = (2) do
  311. {
  312. FBS_ADD = (FBS+FBS2)
  313. if FBS_ADD > (14) gosub FBS_MSG
  314. }
  315. ret
  316. REF_HBA:
  317. if HBA > (8) gosub HBA_MSG
  318. ret
  319. SMOK_HLP:
  320. MESSAGE[1] = ("Number per day eg 16")
  321. NUM.MSG = (1)
  322. gosub PRT.MSG
  323. ret
  324. SMOK_MSG:
  325. MESSAGE[1] = ("There is a risk of cancer,heart disease,gangrene,and bronchitis")
  326. NUM.MSG = (1)
  327. gosub PRT.MSG
  328. ret
  329. REF_PROT:
  330. MESSAGE[1] = ("If there is more than a trace -send sample for orgs and sens.")
  331. MESSAGE[2] = ("Refer to Dr if protein persists etc")
  332. NUM.MSG = (2)
  333. gosub PRT.MSG
  334. ret
  335. SUG_HLP:
  336. MESSAGE[1] = ("Enter sugar in urine as a decimal eg 1/4 = .25")
  337. NUM.MSG = (1)
  338. gosub PRT.MSG
  339. ret
  340. REF_SUG:
  341. MESSAGE[1] = ("Do a blood sugar.If high refer to Dr.")
  342. MESSAGE[2] = ("If patient is a diabetic refer to Dr if more than a third of tests over .25")
  343. NUM.MSG = (2)
  344. gosub PRT.MSG
  345. ret
  346. REG_HLP:
  347. MESSAGE[1] = ("Enter a Y if regular or a N if not. Do apical rate if N")
  348. NUM.MSG = (1)
  349. gosub PRT.MSG
  350. ret
  351. REFER_BP:
  352. MESSAGE[1] = ("There is a definate BP problem here - refer to Dr.")
  353. NUM.MSG = (1)
  354. REF_CHECK = ("Y")
  355. gosub PRT.MSG
  356. ret
  357. BPST_HLP:
  358. MESSAGE[1] = ("Enter standing systolic - It should not drop more than 20")
  359. NUM.MSG = (1)
  360. gosub PRT.MSG
  361. ret
  362. DIET_HLP:
  363. MESSAGE[1] = ("G = Good diet B = Bad diet ")
  364. NUM.MSG = (1)
  365. gosub PRT.MSG
  366. ret
  367. EX_HLP:
  368. MESSAGE[1] = ("Enter a number for hours per week exercise")
  369. NUM.MSG = (1)
  370. gosub PRT.MSG
  371. ret
  372. FBS_MSG:
  373. MESSAGE[1] = ("These are too high - refer to Dr.")
  374. NUM.MSG = (1)
  375. gosub PRT.MSG
  376. REF_CHECK = ("Y")
  377. ret
  378. HBA_MSG:
  379. MESSAGE[1] = ("Poor control here - refer to Dr.")
  380. NUM.MSG = (1)
  381. gosub PRT.MSG
  382. REF_CHECK = ("Y")
  383. ret
  384. VIS_HLP:
  385. MESSAGE[1] = ("Use Snellen test type eg 6 ")
  386. NUM.MSG = (1)
  387. gosub PRT.MSG
  388. ret
  389. RET_HLP:
  390. MESSAGE[1] = ("Retinopathy 0,1,2,3,4,5 ")
  391. NUM.MSG = (1)
  392. gosub PRT.MSG
  393. ret
  394. FOOT_HLP:
  395. MESSAGE[1] = ("Y = Pulses present N = No pulses")
  396. NUM.MSG = (1)
  397. gosub PRT.MSG
  398. ret
  399. SENS_HLP:
  400. MESSAGE[1] = ("Y = Tuning fork sensation present N = Not present")
  401. NUM.MSG = (1)
  402. gosub PRT.MSG
  403. ret
  404. DRUGSCH:
  405. MESSAGE[1] = ("NOW CHECK PATIENTS DRUG THERAPY IS CORRECT")
  406. NUM.MSG = (1)
  407. gosub PRT.MSG
  408. mount(DRUGSCR|S)
  409. RP.REF = (RECORD.NUMBER)
  410. find(M|RP.REF|NOSCR|)
  411. CTR = (17)
  412. NEXTRPS:
  413. pmsg(MEDICATION|10|CTR|N|N|S|)
  414. CTR = (CTR+1)
  415. find(N|RP|NOSCR|)
  416. if RP.REF <> (RECORD.NUMBER) goto NOSCR
  417. goto NEXTRPS
  418. NOSCR:
  419. enter(COMMENT1|||NOSCR|Y|Y|N|||N)
  420. enter(COMMENT2||||Y|Y|N|||N)
  421. mount(SCREEN2|S)
  422. ret
  423. NOCOD:
  424. COD.PAT.NAME = (PATIENT.NAME)
  425. COD.REF = (RECORD.NUMBER)
  426. save(RECALLS|N|N)
  427. find(M|COD.REF||)
  428. goto SAVE_RECS
  429. RUN_MEMO:
  430. goto RUN_MEMOX
  431. RUN_MEMOX:
  432. trap(J|G|EXIT_MEM)
  433. trap(S|G|SAVE_MEMO)
  434. trap(D|I)
  435. trap(C|I)
  436. trap(Q|G|EXIT_MEM)
  437. trap(L|G|EXIT_MEM)
  438. MOUNT:
  439. mount(NEW|S||)
  440. START:
  441. enter(PATIENT.NAME||||Y|Y|N|||N)
  442. find(G|PATIENT.NAME|START|)
  443. PROC_REF = (RECORD.NUMBER)
  444. find(M|PROC_REF|START2CL|)
  445. NY = ("")
  446. pmsg("DO YOU WANT TO UPDATE THE MEMOS FIRST:"|10|20|N|N|S|)
  447. enter(NY|"YN"|||Y|Y|N|50|20|N)
  448. if NY = ("Y") goto UPMEMO
  449. clrlne(1|20)
  450. START2:
  451. gosub LINE
  452. if CTR2 = (0) then CTR2 = (1)
  453. SATRT3:
  454. MEM_DOC = ("")
  455. for(CTR|CTR2|6|1)
  456. {
  457. PROC_DATE[CTR] = (TD)
  458. PROC_UP = (TD)
  459. enter(PROC_DATE[CTR]|||SATRT3|N|N|N|||N)
  460. enter(PROC[CTR]||||Y|Y|N|||N)
  461. enter(PROC_DOC[CTR]|"12345"|||Y|Y|N|||N)
  462. MEM_DOC = (PROC_DOC[CTR])
  463. enter(PROC_OP[CTR]||||Y|Y|N|||N)
  464. if PROC_OP[CTR] = ("") reent
  465. if PROC_EX[CTR] = ("") do
  466. {
  467. PROC_REF = (RECORD.NUMBER)
  468. PROC4 =mid(PROC[CTR]|1|1|)
  469. if PROC4 = ("*") do
  470. {
  471. PROC_EX[CTR] = ("X")
  472. gosub STARTAGAIN
  473. save(PROCEDE|N|N)
  474. find(M|PROC_REF||)
  475. }
  476. enter(PROC_DONE[1]|" YNSCRO"|||Y|Y|N|||N)
  477. enter(PROC_DONE[2]|" YNSCRO"|||Y|Y|N|||N)
  478. enter(PROC_DONE[3]|" YNSCRO"|||Y|Y|N|||N)
  479. enter(PROC_DONE[4]|" YNSCRO"|||Y|Y|N|||N)
  480. enter(PROC_DONE[5]|" YNSCRO"|||Y|Y|N|||N)
  481. enter(PROC_DONE[6]|" YNSCRO"|||Y|Y|N|||N)
  482. }
  483. }
  484. gosub LINE
  485. for(CTR|1|6|1)
  486. {
  487. if PROC[CTR] = ("") then PROC_DATE[CTR] = (0)
  488. }
  489. goto SATRT3
  490. SAVE_MEMO:
  491. for(CTR|1|6|1)
  492. {
  493. if PROC[1] = ("") do
  494. {
  495. clr(PROCEDE|B)
  496. goto START
  497. }
  498. if PROC[CTR] = ("") do
  499. {
  500. PROC_DATE[CTR] = (0)
  501. PROC_OP[CTR] = ("")
  502. PROC_DOC[CTR] = ("")
  503. PROC_DONE[CTR] = ("")
  504. }
  505. }
  506. if PROC_REF = (0) goto START
  507. PROC_REF = (RECORD.NUMBER)
  508. if PROC_REF = (0) goto START
  509. save(PROCEDE|Y|Y|)
  510. MEM_DOC = ("")
  511. goto START
  512. EXIT_MEM:
  513. if PROC[1] = ("") goto RUNPATREC
  514. for(CTR|1|6|1)
  515. {
  516. if PROC[CTR] = ("") do
  517. {
  518. PROC_DATE[CTR] = (0)
  519. PROC_OP[CTR] = ("")
  520. PROC_DOC[CTR] = ("")
  521. PROC_DONE[CTR] = ("")
  522. }
  523. }
  524. if PROC_REF > (0) then save(PROCEDE|N|Y)
  525. RUNPATREC:
  526. trap(S|G|SAVE_RECS)
  527. trap(D|I)
  528. trap(C|G|CLR_RECS)
  529. trap(Q|G|EXIT)
  530. trap(J|G|RUN_MEMO)
  531. mount(SCREEN2|S)
  532. gosub STARTALLXX
  533. goto PAT.NAME2
  534. LINE:
  535. for(CTR2|1|6|1)
  536. {
  537. if PROC[CTR2] = ("") do
  538. {
  539. if CTR2 = (6) do
  540. {
  541. pops
  542. goto SATRT3
  543. }
  544. ret
  545. }
  546. }
  547. CTR = (2)
  548. if PROC_DATE[1] = (TD) do
  549. {
  550. for(CTR3|1|6|1)
  551. {
  552. enter(PROC_DONE[CTR3]|" Y"|||Y|Y|N|||N)
  553. }
  554. pops
  555. goto SAVE_MEMO
  556. }
  557. for(CTR2|1|5|1)
  558. {
  559. PROC[CTR2] = (PROC[CTR])
  560. PROC_DATE[CTR2] = (PROC_DATE[CTR])
  561. PROC_OP[CTR2] = (PROC_OP[CTR])
  562. PROC_DOC[CTR2] = (PROC_DOC[CTR])
  563. PROC_DONE[CTR2] = (PROC_DONE[CTR])
  564. CTR = (CTR+1)
  565. }
  566. PROC[6] = ("")
  567. PROC_DATE[6] = (0)
  568. PROC_OP[6] = ("")
  569. PROC_DOC[6] = ("")
  570. PROC_DONE[6] = ("")
  571. PROC_EX[6] = ("")
  572. goto LINE
  573. ret
  574. UPARROW:
  575. CTR2 = (CTR2-1)
  576. CTR = (CTR2)
  577. ret
  578. STARTAGAIN:
  579. trap(%|I)
  580. trap(J|I)
  581. trap(Q|G|EXITX)
  582. trap(U|I)
  583. trap(C|I)
  584. trap(S|I)
  585. saves(1)
  586. window(20|15|5|40)
  587. trap(Q|G|EXITX)
  588. find(B|HEADING||)
  589. pmsg("IS IT EMERGENCY:"|1|1|N|N|S|)
  590. enter(ISIT_EMER|"YN"|||Y|Y|N|20|1|N)
  591. if ISIT_EMER = ("Y") goto SCR2
  592. gosub SCREEN2
  593. CLIN_NUM = (CLIN_NUM)
  594. pmsg("ENTER SPECIALTY:"|1|2|N|N|S|)
  595. enter(CLIN_NUM||||N|Y|N|20|2|N)
  596. ADDER:
  597. REF_COD = (MEM_DOC)
  598. find(M|REF_COD|EXIT|)
  599. if ISIT_EMER <> ("Y") do
  600. {
  601. CLIN_REF[CLIN_NUM] = (CLIN_REF[CLIN_NUM]+1)
  602. }
  603. else
  604. {
  605. EMERG_REF[EMERG_NUM] = (EMERG_REF[EMERG_NUM]+1)
  606. }
  607. save(REFER|N|Y)
  608. CLIN_NUM = (0)
  609. CON_NUM = (0)
  610. EMERG_NUM = (0)
  611. ISIT_EMER = ("")1
  612. redsp(1)
  613. trap(%|D)
  614. trap(J|G|EXIT_MEM)
  615. trap(U|D)
  616. trap(Q|G|EXIT)
  617. ret
  618. SCREEN2:
  619. saves(2)
  620. window(1|25|24|78)
  621. for(REF_CTR|1|22|1)
  622. {
  623. pmsg(@R;REF_CTR;@N;" ";@R;CLINICS[REF_CTR];@N|1|REF_CTR|N|N|S|)
  624. }
  625. CON_CTR = (REF_CTR+1)
  626. for(REF_CTR|1|22|1)
  627. {
  628. pmsg(@R;CON_CTR;@N;" ";@R;CLINICS[CON_CTR];@N|25|REF_CTR|N|N|S|)
  629. CON_CTR = (CON_CTR+1)
  630. }
  631. pmsg("ENTER NUMBER:"|60|12|N|N|S|)
  632. enter(CLIN_NUM||||N|Y|N|65|13|N)
  633. if CLIN_NUM = (0) reent
  634. if CLIN_NUM > (44) reent
  635. redsp(2)
  636. ret
  637. SCREEN3:
  638. saves(2)
  639. window(1|25|24|78)
  640. for(REF_CTR|1|22|1)
  641. {
  642. pmsg(@R;REF_CTR;@N;" ";@R;CLINICS[REF_CTR];@N|1|REF_CTR|N|N|S|)
  643. }
  644. CON_CTR = (REF_CTR+1)
  645. for(REF_CTR|1|22|1)
  646. {
  647. pmsg(@R;CON_CTR;@N;" ";@R;CLINICS[CON_CTR];@N|25|REF_CTR|N|N|S|)
  648. CON_CTR = (CON_CTR+1)
  649. }
  650. pmsg("ENTER NUMBER:"|60|12|N|N|S|)
  651. enter(EMERG_NUM||||N|Y|N|65|13|N)
  652. if EMERG_NUM = (0) reent
  653. if EMERG_NUM > (44) reent
  654. redsp(2)
  655. ret
  656. SCR2:
  657. gosub SCREEN3
  658. EMERG_NUM = (EMERG_NUM)
  659. pmsg("ENTER SPECIALTY EMERGENCY:"|1|3|N|N|S|)
  660. enter(EMERG_NUM||||N|Y|N|30|3|N)
  661. goto ADDER
  662. EXITX:
  663. goto STARTCHK
  664. UPMEMO:
  665. enter(PROC_DONE[1]|" YNSCRO"|||Y|Y|N|||N)
  666. enter(PROC_DONE[2]|" YNSCRO"|||Y|Y|N|||N)
  667. enter(PROC_DONE[3]|" YNSCRO"|||Y|Y|N|||N)
  668. enter(PROC_DONE[4]|" YNSCRO"|||Y|Y|N|||N)
  669. enter(PROC_DONE[5]|" YNSCRO"|||Y|Y|N|||N)
  670. enter(PROC_DONE[6]|" YNSCRO"|||Y|Y|N|||N)
  671. clrlne(1|22)
  672. goto START2
  673. START2CL:
  674. clr(PROCEDE|B)
  675. goto START2
  676. PAT.NAME2:
  677. goto NO_DIAB3
  678. PRINT:
  679. mount(CHKREP|R|P)
  680. pset(128|24|24)
  681. pchr(P|1)
  682. pfmt(1|||N|N|)
  683. pfmt(2|||N|N|)
  684. pfmt(3|||N|N|)
  685. pfmt(4|||N|N|)
  686. pfmt(5|||N|N|)
  687. pfmt(6|||N|N|)
  688. pfmt(7|||N|N|)
  689. fld_lctr = (0)
  690. gosub PRINTRP
  691. fld_lctr = (fld_lctr+7)
  692. if REF_CHECK = ("Y") do
  693. {
  694. pmsg(%14;"                          REFERRED TO DOCTOR"|||N|N|P|)
  695. fld_lctr = (fld_lctr+1)
  696. }
  697. CTR3 = (24-fld_lctr)
  698. if fld_lctr <= (0) goto MOUNTAGAIN
  699. for(CTR2|1|CTR3|1)
  700. {
  701. pmsg(""|||N|N|P|)
  702. }
  703. MOUNTAGAIN:
  704. mount(SCREEN2|S)
  705. gosub STARTALLXX
  706. ret
  707. PRINTRP:
  708. RP.REF = (RECORD.NUMBER)
  709. find(M|RP.REF|RETPRINT|)
  710. CTR = (1)
  711. TESTALLX:
  712. if fld_lctr = (8) goto RETPRINT
  713. fld_lctr = (fld_lctr+1)
  714. AOD[CTR] = (AUTO.ON.DEMAND)
  715. MN[CTR] = (MEDICATION)
  716. DO[CTR] = (DOSE)
  717. QU[CTR] = (QUANTITY)
  718. DS[CTR] = (DIRECTIONS)
  719. QTY[CTR] = (RP.DISP.QTY)
  720. ISN[CTR] = (ISSUE.NO)
  721. trim(MN[CTR]|T)
  722. trim(QU[CTR]|T)
  723. just(QU[CTR]|L)
  724. trim(DO[CTR]|T)
  725. just(DO[CTR]|L)
  726. trim(DS[CTR]|T)
  727. just(DS[CTR]|L)
  728. pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|||N|N|P|)
  729. find(N|RP|RETPRINT|)
  730. if RP.REF <> (RECORD.NUMBER) goto RETPRINT
  731. CTR = (CTR+1)
  732. goto TESTALLX
  733. RETPRINT:
  734. PROC_REF = (RECORD.NUMBER)
  735. find(M|PROC_REF|RETPRINTX|)
  736. for(CTR2|1|6|1)
  737. {
  738. if PROC[CTR2] = ("") goto RETPRINTX
  739. pmsg(PROC_DATE[CTR2];"   ";PROC[CTR2]|||N|N|P|)
  740. fld_lctr = (fld_lctr+1)
  741. }
  742. RETPRINTX:
  743. ret
  744. STARTALLXX:
  745. if RECORD.NUMBER = (0) goto ENDITXXX
  746. COD.REF = (RECORD.NUMBER)
  747. find(M|COD.REF|NEXTALL2XX|)
  748. MEM_RECD = (COD.D[4])
  749. MEM_RECT = (COD.D[6])
  750. MEM_RECB = (COD.D[9])
  751. NEXTALL2XX:
  752. RP.REF = (RECORD.NUMBER)
  753. find(M|RP.REF|ENDITXXX|)
  754. pmsg("DRUG THERAPY ON REPEAT"|33|12|N|N|S|)
  755. CTR = (1)
  756. TESTALLOP:
  757. if CTR = (12) goto ENDITXXX
  758. AOD[CTR] = (AUTO.ON.DEMAND)
  759. MN[CTR] = (MEDICATION)
  760. DO[CTR] = (DOSE)
  761. QU[CTR] = (QUANTITY)
  762. DS[CTR] = (DIRECTIONS)
  763. QTY[CTR] = (RP.DISP.QTY)
  764. ISN[CTR] = (ISSUE.NO)
  765. trim(MN[CTR]|T)
  766. trim(QU[CTR]|T)
  767. just(QU[CTR]|L)
  768. trim(DO[CTR]|T)
  769. just(DO[CTR]|L)
  770. trim(DS[CTR]|T)
  771. just(DS[CTR]|L)
  772. CTR2 = (CTR+11)
  773. pmsg(AOD[CTR];" ";MN[CTR];" ";DO[CTR];" ";QU[CTR];" ";DS[CTR];" ";QTY[CTR];" ";ISN[CTR]|1|CTR2|N|N|S|)
  774. silly = ("")
  775. find(N|RP|ENDITXXX|)
  776. if RP.REF <> (RECORD.NUMBER) goto ENDITXXX
  777. CTR = (CTR+1)
  778. goto TESTALLOP
  779. ENDITXXX:
  780. ret
  781. ALC_HLP:
  782. MESSAGE[1] = ("ENTER NUMBER OF PINTS A WEEK - 1 PUB GIN=1/2 PINT")
  783. NUM.MSG = (1)
  784. gosub PRT.MSG
  785. ret
  786. ANG_HLP:
  787. MESSAGE[1] = ("ENTER NUMBER OF ATTACKS PER WEEK")
  788. NUM.MSG = (1)
  789. gosub PRT.MSG
  790. ret
  791. WEIGHT:
  792. MESSAGE[1] = ("THERE IS AN OBESITY PROBLEM HERE")
  793. NUM.MSG = (1)
  794. gosub PRT.MSG
  795. ret
  796. OED_HLP:
  797. MESSAGE[1] = ("Graded from 0 to 3")
  798. NUM.MSG = (1)
  799. gosub PRT.MSG
  800. ret
  801. FAST:
  802. MESSAGE[1] = ("Pulse is too fast - REFER")
  803. NUM.MSG = (1)
  804. gosub PRT.MSG
  805. REF_CHECK = ("Y")
  806. ret
  807. SLOW:
  808. MESSAGE[1] = ("Pulse is too slow - do DIGOXIN level and Refer")
  809. NUM.MSG = (1)
  810. gosub PRT.MSG
  811. REF_CHECK = ("Y")
  812. ret
  813. \STNEW     
  814.  
  815.  
  816.  
  817.  
  818.  
  819.                                  PROCEDURE ENTRY
  820.           ╔═══════════════════════════════════════════════════════════════╗
  821.           ║ &                          <&                     <&         <║
  822.           ║                                                               ║
  823.           ║  Date             Procedure                        Dr Rec Done║
  824.           ║ &         &                                        & &    &   ║
  825.           ║ &         &                                        & &    &   ║
  826.           ║ &         &                                        & &    &   ║
  827.           ║ &         &                                        & &    &   ║
  828.           ║ &         &                                        & &    &   ║
  829.           ║ &         &                                        & &    &   ║
  830.           ╚═══════════════════════════════════════════════════════════════╝
  831.           Esc - Exit and Save V=1 G=2 P=3 N=4 T=5 * for clinic,xray,path
  832.               Y=DONE S=SEE DR C=COL.SCRPT R=REPEAT O=OTHER N=NORMAL
  833.  
  834.  
  835.  
  836.  
  837.  
  838. \
  839. PATIENT.NAME
  840. ADDRESS1
  841. DATE.OF.BIRTH
  842. PROC_DATE[1]
  843. PROC[1]
  844. PROC_DOC[1]
  845. PROC_OP[1]
  846. PROC_DONE[1]
  847. PROC_DATE[2]
  848. PROC[2]
  849. PROC_DOC[2]
  850. PROC_OP[2]
  851. PROC_DONE[2]
  852. PROC_DATE[3]
  853. PROC[3]
  854. PROC_DOC[3]
  855. PROC_OP[3]
  856. PROC_DONE[3]
  857. PROC_DATE[4]
  858. PROC[4]
  859. PROC_DOC[4]
  860. PROC_OP[4]
  861. PROC_DONE[4]
  862. PROC_DATE[5]
  863. PROC[5]
  864. PROC_DOC[5]
  865. PROC_OP[5]
  866. PROC_DONE[5]
  867. PROC_DATE[6]
  868. PROC[6]
  869. PROC_DOC[6]
  870. PROC_OP[6]
  871. PROC_DONE[6]
  872. \
  873. \R CHKREP  
  874. MINOR SURGERY CLINIC:  &                          :&          ON &        BY &      Dr.&
  875. ================================================================================================================
  876. Smokes :&    Exrcise:&    Alcohol:&    Angina:&    Diet:&   Weight:&        Height:&       Ideal Wt:&
  877. Protein:&      Sugar:&       Drs. Rec. BP:&  /&    BP Chk Num:&  BP:&  /&     Standing Sys:&     Pulse:&  /&/&
  878. Oedema:&   Fev:&
  879. Drugs Checked:&   Tsh:&      Next Check:&
  880. OPERATION:&                             &                               Nurses Sig:
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922. \
  923. PATIENT.NAME
  924. DATE.OF.BIRTH
  925. TD
  926. CHECK_OP
  927. CHK_DOC
  928. SMOK
  929. EXERCISE
  930. ALCOHOL
  931. ANGINA
  932. DIET
  933. WT1
  934. WT2
  935. IDEAL_WT
  936. PROT
  937. SUG
  938. DOC_BP1
  939. DOC_BP2
  940. BP_CHECK_NUM
  941. BP1
  942. BP2
  943. BP1S
  944. PULSE
  945. REG
  946. APEX
  947. OEDEMA
  948. FEV
  949. DRUGS_CHECKED
  950. TSH
  951. NEXT_CHECK
  952. COMMENT1
  953. COMMENT2
  954. \
  955. \SSSCREEN2 
  956. MINOR SURGERY  p p p p p p p p p p p p p p p p p p p p p p p p p p p  p p p p p p p p p p( p p) on  p p p p p p p p by  p p p p p p  ================
  957. =============================================================== Dr.Num:p p  Rec.Date:p p p p p p p p p Drug
  958. s Checked:p p Refrd:p p Nxt Chk:p p p p p p p p p Prnt N/Y:p p ================================================
  959. =============================== Smokes:p p p     Wt:p p p p p p p    Dr.BP:p p p p/ p p p                        
  960.                 Exerc :p p p     Ht:p p p p p p p   Chk.No:p p                                              
  961. Alcoh :p p p     IW:p p p p p p p       BP:p p p p/ p p p                                        Angina:p p p     Pr
  962. :p p p p p     St.Sys:p p p p                                            Diet  :p p      Su:p p p p p      Pulse
  963. :p p p p:p p:p p p p   Oedema:p p  Fev:p p p p  CHOL:p p p p p p      OPERATION: p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p
  964.  p p p p p p p p p p p p p p p p p p p p p p          ================================================================
  965. ==============                                                                                  
  966.                                                                                                 
  967.                                                                                                 
  968.                                                                                                 
  969.                                                                                                 
  970.                                                                                                 
  971.                                                                                                 
  972.                                                                                                 
  973.                                                                                                 
  974.                                                                                                 
  975.                                                                                                 
  976. \
  977. PATIENT.NAME       27 A 15 1
  978. DATE.OF.BIRTH      10 D 43 1
  979. AGE                 2 N 54 1
  980. CHECK_DATE          8 S 61 1
  981. CHECK_OP            6 A 73 1
  982. CHK_DOC             1 N  8 3
  983. COD.D            9  8 S 20 3
  984. DRUGS_CHECKED       1 A 43 3
  985. REF_CHECK           1 A 51 3
  986. NEXT_CHECK          8 S 61 3
  987. YES.NO              1 A 79 3
  988. SMOK                2 N  8 5
  989. WT1                 52N 18 5
  990. DOC_BP1             3 N 34 5
  991. DOC_BP2             3 N 38 5
  992. EXERCISE            2 N  8 6
  993. WT2                 52N 18 6
  994. BP_CHECK_NUM        1 N 34 6
  995. ALCOHOL             2 N  8 7
  996. IDEAL_WT            52N 18 7
  997. BP1                 3 N 34 7
  998. BP2                 3 N 38 7
  999. ANGINA              2 N  8 8
  1000. PROT                4 A 18 8
  1001. BP1S                3 N 34 8
  1002. DIET                1 A  8 9
  1003. SUG                 32N 18 9
  1004. PULSE               3 N 34 9
  1005. REG                 1 A 38 9
  1006. APEX                3 N 40 9
  1007. OEDEMA              1 N 53 9
  1008. FEV                 3 N 60 9
  1009. CHOL                42N 70 9
  1010. COMMENT1           30 A 1110
  1011. COMMENT2           30 A 4110
  1012. \
  1013. \STDRUGSCR 
  1014.               Digoxin      B-blockers    Diuretics  Tnt + Ca      Ace Inhib
  1015.    ╔═════════════════════════════════════════════════════════════════════════╗
  1016.    ║CHECK║PULSE + APEX    ║FEV          ║OEDEMA    ║ANGINA       ║           ║
  1017.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1018.    ║TESTS║DIGOXIN LEVEL   ║U&E          ║U&E       ║NONE         ║U&E        ║
  1019.    ║     ║U & E           ║             ║URIC ACID ║             ║           ║
  1020.    ║     ║                ║             ║BS        ║             ║           ║
  1021.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1022.    ║SIDE ║NAUSEA,VOMIT    ║COLD EXTREMS ║GOUT      ║HEADACHE     ║DROP       ║
  1023.    ║     ║DIZZY,COLOR VIS.║             ║          ║             ║DRY COUGH  ║
  1024.    ║═════║════════════════║═════════════║══════════║═════════════║═══════════║
  1025.    ║REFER║PULSE >120 <56  ║PULSE <50    ║DYSPNEA+  ║ANGINA WORSE ║           ║
  1026.    ║     ║                ║FEV 33% LESS ║          ║             ║           ║
  1027.    ╚═════════════════════════════════════════════════════════════════════════╝
  1028.    Pulse:&  /&/&    Fev:&    Oed:& Angina:&   Com:&
  1029.                Drugs                          Com:&
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038. \
  1039. PULSE
  1040. REG
  1041. APEX
  1042. FEV
  1043. OEDEMA
  1044. ANGINA
  1045. COMMENT1
  1046. COMMENT2
  1047. \
  1048.